package Java练习.数组练习;

public class 冒泡排序 {
    /*定义一个数组存入1,2,3,4,5
    交换前:1,2,3,4,5
    交换后:5,2,3,,4,1
     */
    public static void main(String[] args) {

//        //定义一个数组
//        int[] num = {1, 2, 3, 4, 5};
//        //根据题意交换对应的索引值(将0索引和最大索引进行交换)
//        //拿出0索引的值
//        int a=num[0];
//        //取出最大索引的值
//        int b=num[num.length-1];
//        //定义一个临时第三方变量(现象成有2杯水怎样才可以进行交换)
//        int c=0;
        //交换
        //1.把a的值给c,使c记录a的值(可以想象成水,现在a杯子已经空l)
//        c=a;
//        //2.把b的值给a(把b杯子中的水倒进了a杯子)
//        a=b;
//        //3.把c给b(把c中存放的a水倒进b杯子,两杯水就进行了互换.)
//        b=c;
//        //解题
//        int tem=num[0];
//        num[0]=num[num.length-1];
//        num[num.length-1]=tem;
//        for (int i = 0; i < num.length; i++) {
//            System.out.print(num[i]+" ");
//        }
        // 该思想又叫冒泡排序
//        int[] num = {1, 2, 3, 4, 5};
        //交换后的数据:5,4,3,2,1 要求:5和1交换,2和4交换
        //方法一
//        for (int i = 0; i <= num.length/2; i++) {
//            //定义一个临时存放点,记录向内进行冒泡的初始值
//            int tem=num[i];
//            //把最后一个值给第一个值,且一致向内重复这个操作,从2边向中间走
//            num[i]=num[4-i];
//            //把冒泡开始向内进行冒泡且交换值
//            num[4-i]=tem;
//        }
//        System.out.println("冒泡排序后的值的列表为");
//        for (int i = 0; i < num.length; i++) {
//            System.out.print(num[i]+" ");
//        }
        //解法二
        int[] num = {1, 2, 3, 4, 5};
        //定义2个循环变量相当于冒牌数组的左右索引,一个增加,一个减少向内进行冒泡
        for(int i=0,j=num.length-1;i<j;i++,j--){
            //定义一个临时第三方存放变量
            int tem=num[i];
            num[i]=num[j];
            num[j]=tem;
        }
        for (int i = 0; i < num.length; i++) {
            System.out.print(num[i]+" ");
        }
    }
}
